package com.hzhc.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 系统用户
 * </p>
 *
 * @author duanhm
 * @since 2019-11-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysUser implements Serializable {

	private static final long serialVersionUID = 1L;

	@TableId(value = "id", type = IdType.AUTO)
	private Long id;

	/**
	 * 登入名
	 */
	private String loginname;

	/**
	 * 密码
	 */
	private String password;

	/**
	 * 工号
	 */
	private String gonghao;

	/**
	 * 真实姓名
	 */
	private String realname;

	/**
	 * 盐值
	 */
	private String salt;

	/**
	 * 性别 0=保密/1=男/2=女
	 */
	private Integer sex;

	/**
	 * 身份证
	 */
	private String idcard;

	/**
	 * 邮箱
	 */
	private String email;

	/**
	 * 所属机构部门
	 */
	private Long orgId;

	/**
	 * 手机号
	 */
	private String mobile;

	/**
	 * 最后登录时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime lastLoginTime;

	/**
	 * 最后登录IP
	 */
	private String lastLoginIp;

	/**
	 * 头像缩略图地址
	 */
	private String avatarUrl;

	/**
	 * 状态 0：禁用 1：正常
	 */
	private Integer status;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime createTime;

	/**
	 * 用户职级 0-100
	 */
	private String userLevel;

	/**
	 * 微信角色
	 */
	private String memberType;

	/**
	 * 专业/工种
	 */
	private String position;

	/**
	 * 岗位
	 */
	private Long sentry;

	/**
	 * 部门
	 */
	private Long section;

	/**
	 * 入职时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime entryTime;

	/**
	 * 家庭联系方式
	 */
	private String telphone;

	/**
	 * 在职状态 0：在职 1：离职
	 */
	private Boolean entryType;

	/**
	 * 拥有视频点权限id 多个逗号隔开
	 */
	private String videoPoints;

	/**
	 * 登录次数
	 */
	private Integer loginNum;

	/**
	 * 允许登录时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private LocalDateTime loginTime;

	@TableField(exist = false)
	private String captchaVerification;
}
